#ifndef NAMEGIVER_H
#define NAMEGIVER_H

#include "character.h"
#include "skill.h"

class NameGiver: public Character
{
public:
  NameGiver();

  R(ed::Race,race)
  RW(int,legendPoints)
  int characteristic(ed::Characteristic c) const;

  QMap<Skill,int> skills() const;
  int skillRank(const Skill& s) const;
  int skillLevel(const Skill& s) const;

  void setSkillRank(const Skill& s, int rank);
  void set_race(ed::Race r);

  virtual int characteristicBonus(ed::Characteristic c) const;

  void decreaseLegendPoints(int amount);

  int karmaLevel() const;
  virtual int maximumKarma() const;

protected:
  QMap<Skill,int> _skills;
  QMap<ed::Characteristic,int> _characteristicBonuses;
};

#endif // NAMEGIVER_H
